[INFO] fetching crate mutagen 0.1.2...
[INFO] fixing mutagen-0.1.2 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] extracting crate mutagen 0.1.2 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate mutagen 0.1.2
[INFO] finished tweaking crates.io crate mutagen 0.1.2
[INFO] tweaked toml for crates.io crate mutagen 0.1.2 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate mutagen 0.1.2 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 1 package to latest compatible version
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `mutagen` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] da82551f2815028460accf23bf851b062b13fb72c4d7b023635a3d8349dd2b63
[INFO] running `Command { std: "docker" "start" "da82551f2815028460accf23bf851b062b13fb72c4d7b023635a3d8349dd2b63", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "da82551f2815028460accf23bf851b062b13fb72c4d7b023635a3d8349dd2b63" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "da82551f2815028460accf23bf851b062b13fb72c4d7b023635a3d8349dd2b63", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "da82551f2815028460accf23bf851b062b13fb72c4d7b023635a3d8349dd2b63" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2015 edition to 2018
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `mutagen` (manifest) generated 1 warning
[INFO] [stderr]    Compiling mutagen v0.1.2 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating build.rs from 2015 edition to 2018
[INFO] [stderr]    Migrating src/lib.rs from 2015 edition to 2018
[INFO] [stderr]        Fixed src/lib.rs (1 fix)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.30s
[INFO] [stderr] crater-edition-check: mutagen v0.1.2 (/opt/rustwide/workdir) updating edition from 2015 to 2018
[INFO] [stderr]    Compiling mutagen v0.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> build.rs:6:26
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn write_binop(out: &mut Write, o_trait: &str, o_fn: &str, mut_trait: &str, mut_fn: &str) ->
[INFO] [stdout]   |                          ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]   = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn write_binop(out: &mut dyn Write, o_trait: &str, o_fn: &str, mut_trait: &str, mut_fn: &str) ->
[INFO] [stdout]   |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> build.rs:68:25
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn write_unop(out: &mut Write, op_trait: &str, op_fn: &str) -> Result<()> {
[INFO] [stdout]    |                         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn write_unop(out: &mut dyn Write, op_trait: &str, op_fn: &str) -> Result<()> {
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `specialization` is incomplete and may not be safe to use and/or cause compiler crashes
[INFO] [stdout]  --> src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(specialization, atomic_min_max, try_from, assoc_unix_epoch)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: see issue #31844 <https://github.com/rust-lang/rust/issues/31844> for more information
[INFO] [stdout]   = help: consider using `min_specialization` instead, which is more stable and complete
[INFO] [stdout]   = note: `#[warn(incomplete_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `assoc_unix_epoch` has been stable since 1.28.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:1:54
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(specialization, atomic_min_max, try_from, assoc_unix_epoch)]
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `atomic_min_max` has been stable since 1.45.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(specialization, atomic_min_max, try_from, assoc_unix_epoch)]
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `try_from` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:1:44
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(specialization, atomic_min_max, try_from, assoc_unix_epoch)]
[INFO] [stdout]   |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:216:94
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub fn forloop<'a, I: Iterator + 'a>(i: I, n: usize, flag: &AtomicUsize, mask: usize) -> Box<Iterator<Item=I::Item > + 'a> {
[INFO] [stdout]     |                                                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub fn forloop<'a, I: Iterator + 'a>(i: I, n: usize, flag: &AtomicUsize, mask: usize) -> Box<dyn Iterator<Item=I::Item > + 'a> {
[INFO] [stdout]     |                                                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:143:72
[INFO] [stdout]     |
[INFO] [stdout] 143 |     pub fn forloop<'a, I: Iterator + 'a>(&self, i: I, n: usize) -> Box<Iterator<Item=I::Item> + 'a> {
[INFO] [stdout]     |                                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 143 |     pub fn forloop<'a, I: Iterator + 'a>(&self, i: I, n: usize) -> Box<dyn Iterator<Item=I::Item> + 'a> {
[INFO] [stdout]     |                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `specialization` is incomplete and may not be safe to use and/or cause compiler crashes
[INFO] [stdout]  --> src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(specialization, atomic_min_max, try_from, assoc_unix_epoch)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: see issue #31844 <https://github.com/rust-lang/rust/issues/31844> for more information
[INFO] [stdout]   = help: consider using `min_specialization` instead, which is more stable and complete
[INFO] [stdout]   = note: `#[warn(incomplete_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `assoc_unix_epoch` has been stable since 1.28.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:1:54
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(specialization, atomic_min_max, try_from, assoc_unix_epoch)]
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `atomic_min_max` has been stable since 1.45.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(specialization, atomic_min_max, try_from, assoc_unix_epoch)]
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.02s
[INFO] [stdout] warning: the feature `try_from` has been stable since 1.34.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:1:44
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(specialization, atomic_min_max, try_from, assoc_unix_epoch)]
[INFO] [stdout]   |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:216:94
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub fn forloop<'a, I: Iterator + 'a>(i: I, n: usize, flag: &AtomicUsize, mask: usize) -> Box<Iterator<Item=I::Item > + 'a> {
[INFO] [stdout]     |                                                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub fn forloop<'a, I: Iterator + 'a>(i: I, n: usize, flag: &AtomicUsize, mask: usize) -> Box<dyn Iterator<Item=I::Item > + 'a> {
[INFO] [stdout]     |                                                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating Cargo.toml from 2015 edition to 2018
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:143:72
[INFO] [stdout]     |
[INFO] [stdout] 143 |     pub fn forloop<'a, I: Iterator + 'a>(&self, i: I, n: usize) -> Box<Iterator<Item=I::Item> + 'a> {
[INFO] [stdout]     |                                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 143 |     pub fn forloop<'a, I: Iterator + 'a>(&self, i: I, n: usize) -> Box<dyn Iterator<Item=I::Item> + 'a> {
[INFO] [stdout]     |                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `inner` is never read
[INFO] [stdout]  --> src/iterators.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct NoopIterator<I: Iterator> {
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] 4 |     pub inner: I,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `inner` is never read
[INFO] [stdout]  --> src/iterators.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct NoopIterator<I: Iterator> {
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] 4 |     pub inner: I,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> build.rs:6:26
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn write_binop(out: &mut Write, o_trait: &str, o_fn: &str, mut_trait: &str, mut_fn: &str) ->
[INFO] [stdout]   |                          ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]   = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn write_binop(out: &mut dyn Write, o_trait: &str, o_fn: &str, mut_trait: &str, mut_fn: &str) ->
[INFO] [stdout]   |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking mutagen v0.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> build.rs:68:25
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn write_unop(out: &mut Write, op_trait: &str, op_fn: &str) -> Result<()> {
[INFO] [stdout]    |                         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn write_unop(out: &mut dyn Write, op_trait: &str, op_fn: &str) -> Result<()> {
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/lib.rs from 2018 edition to 2021
[INFO] [stderr]        Fixed src/lib.rs (2 fixes)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.58s
[INFO] [stderr] crater-edition-check: mutagen v0.1.2 (/opt/rustwide/workdir) updating edition from 2018 to 2021
[INFO] [stderr]    Compiling mutagen v0.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]  --> build.rs:6:26
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn write_binop(out: &mut Write, o_trait: &str, o_fn: &str, mut_trait: &str, mut_fn: &str) ->
[INFO] [stdout]   |                          ^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: use a new generic type parameter, constrained by `Write`
[INFO] [stdout]   |
[INFO] [stdout] 6 - fn write_binop(out: &mut Write, o_trait: &str, o_fn: &str, mut_trait: &str, mut_fn: &str) ->
[INFO] [stdout] 6 + fn write_binop<T: Write>(out: &mut T, o_trait: &str, o_fn: &str, mut_trait: &str, mut_fn: &str) ->
[INFO] [stdout]   |
[INFO] [stdout] help: you can also use an opaque type, but users won't be able to specify the type parameter when calling the `fn`, having to rely exclusively on type inference
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn write_binop(out: &mut impl Write, o_trait: &str, o_fn: &str, mut_trait: &str, mut_fn: &str) ->
[INFO] [stdout]   |                          ++++
[INFO] [stdout] help: alternatively, use a trait object to accept any type that implements `Write`, accessing its methods at runtime using dynamic dispatch
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn write_binop(out: &mut dyn Write, o_trait: &str, o_fn: &str, mut_trait: &str, mut_fn: &str) ->
[INFO] [stdout]   |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> build.rs:68:25
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn write_unop(out: &mut Write, op_trait: &str, op_fn: &str) -> Result<()> {
[INFO] [stdout]    |                         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use a new generic type parameter, constrained by `Write`
[INFO] [stdout]    |
[INFO] [stdout] 68 - fn write_unop(out: &mut Write, op_trait: &str, op_fn: &str) -> Result<()> {
[INFO] [stdout] 68 + fn write_unop<T: Write>(out: &mut T, op_trait: &str, op_fn: &str) -> Result<()> {
[INFO] [stdout]    |
[INFO] [stdout] help: you can also use an opaque type, but users won't be able to specify the type parameter when calling the `fn`, having to rely exclusively on type inference
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn write_unop(out: &mut impl Write, op_trait: &str, op_fn: &str) -> Result<()> {
[INFO] [stdout]    |                         ++++
[INFO] [stdout] help: alternatively, use a trait object to accept any type that implements `Write`, accessing its methods at runtime using dynamic dispatch
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn write_unop(out: &mut dyn Write, op_trait: &str, op_fn: &str) -> Result<()> {
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0782`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `mutagen` (build script) due to 2 previous errors
[INFO] running `Command { std: "docker" "inspect" "da82551f2815028460accf23bf851b062b13fb72c4d7b023635a3d8349dd2b63", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "da82551f2815028460accf23bf851b062b13fb72c4d7b023635a3d8349dd2b63", kill_on_drop: false }`
[INFO] [stdout] da82551f2815028460accf23bf851b062b13fb72c4d7b023635a3d8349dd2b63
